From 811d602842ac48e3435a5ba92824a4f3c35551a0 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Sun, 18 Jan 2015 15:15:37 -0500 Subject: [PATCH] Make Broadway work on freebsd It seems that posix_fallocate gives an ENODEV error when called on an fd opened with shm_open on freebsd. Fix up the error check to only trigger if we get ENOSPC. https://bugzilla.gnome.org/show_bug.cgi?id=742980 --- gdk/broadway/gdkbroadway-server.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gdk/broadway/gdkbroadway-server.c b/gdk/broadway/gdkbroadway-server.c index 904eb7e13d..9033e3e27b 100644 --- a/gdk/broadway/gdkbroadway-server.c +++ b/gdk/broadway/gdkbroadway-server.c @@ -544,13 +544,13 @@ map_named_shm (char *name, gsize size) #ifdef HAVE_POSIX_FALLOCATE res = posix_fallocate (fd, 0, size); - if (res != 0) + if (res != 0 && errno == ENOSPC) { shm_unlink (name); g_error ("Not enough shared memory for window surface"); } #endif - + ptr = mmap(0, size, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0); (void) close(fd); -- 2.30.2